<?php
class concurso{
	private $id;
        private $titulo;
	private $chamada;
	private $instituicao;
	private $data_inicio_inscricoes;
	private $hora_inicio_inscricoes;
	private $data_final_inscricoes;
	private $hora_final_inscricoes;
        private $data_concurso;
        private $id_boleto;
	private $vencimento_boleto;
	private $cidade;
	private $estado;
	private $observacoes;
        private $recurso;
        private $fechado;

	public function __construct(){
		$this->id = NULL;
                $this->titulo = NULL;
		$this->chamada = NULL;
		$this->instituicao = NULL;
		$this->data_inicio_inscricoes = NULL;
		$this->hora_inicio_inscricoes = NULL;
		$this->data_final_inscricoes = NULL;
		$this->hora_final_inscricoes = NULL;
                $this->data_concurso = NULL;
                $this->id_boleto = NULL;
		$this->vencimento_boleto = NULL;
		$this->cidade = NULL;
		$this->estado = NULL;
		$this->observacoes = NULL;
                $this->recurso = 0;
                $this->fechado = 0;
	}

	public function get_id(){
		return $this->id;
	}
        public function get_titulo(){
		return $this->titulo;
	}
	public function get_chamada(){
		return $this->chamada;
	}
	public function get_instituicao(){
		return $this->instituicao;
	}
	public function get_data_inicio_inscricoes(){
                if($this->data_inicio_inscricoes){
                    return data_ptbr($this->data_inicio_inscricoes);
                }else{
                    return NULL;
                }
	}
        public function get_data_inicio_inscricoes_int(){
                return $this->data_inicio_inscricoes;
	}
	public function get_hora_inicio_inscricoes(){
		return $this->hora_inicio_inscricoes;
	}
	public function get_data_final_inscricoes(){
                if($this->data_final_inscricoes){
                    return data_ptbr($this->data_final_inscricoes);
                }else{
                    return NULL;
                }
	}
        public function get_data_final_inscricoes_int(){
                return $this->data_final_inscricoes;
	}
	public function get_hora_final_inscricoes(){
		return $this->hora_final_inscricoes;
	}
        public function get_data_concurso(){
                if($this->data_concurso && $this->data_concurso != "0000-00-00"){
                    return data_ptbr($this->data_concurso);
                }else{
                    return NULL;
                }
	}
        public function get_data_concurso_int(){
                return $this->data_concurso;
	}
	public function get_id_boleto(){
		return $this->id_boleto;
	}
        public function get_vencimento_boleto(){
                if($this->vencimento_boleto){
                    return data_ptbr($this->vencimento_boleto);
                }else{
                    return NULL;
                }
	}
        public function get_vencimento_boleto_int(){
                return $this->vencimento_boleto;
	}
	public function get_cidade(){
		return $this->cidade;
	}
	public function get_estado(){
		return $this->estado;
	}
	public function get_observacoes(){
		return $this->observacoes;
	}
        public function get_nome_instituicao(){
		$sql = "select nome from instituicao where id = '".$this->instituicao."'";
    
                $db = new db(config::$driver);
                $con = $db->conecta();
                $res = $db->query($sql, $con);
                $db->close($con);
                $instituicao = $db->fetch_array($res);
                return $instituicao[0];
	}
        public function get_recurso(){
		return $this->recurso;
	}
        public function get_fechado(){
		return $this->fechado;
	}
         
	
	public function set_id($id){
		if($id != '' && valida::numero($id)){
                    $this->id = $id;
                    return 1;
		}else{
                    return 0;
                }
        }

        public function set_titulo($titulo){
		if($titulo != '' && valida::nome_num($titulo)){
                    $this->titulo = $titulo;
                    return 1;
		}else{
                    return 0;
                }
        }
        
	public function set_chamada($chamada){
                $chamada = addslashes($chamada);
                $this->chamada = $chamada;
                return 1;
        }

	public function set_instituicao($instituicao){
		if($instituicao != '' && valida::nome_num($instituicao)){
                    $this->instituicao = $instituicao;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_data_inicio_inscricoes($data_inicio_inscricoes){
		if(valida::data($data_inicio_inscricoes)){
                    if(substr($data_inicio_inscricoes, 2, 1) == '/' && substr($data_inicio_inscricoes, 5, 1) == '/'){
                        $data_inicio_inscricoes = data_inter($data_inicio_inscricoes);
                    }
                    $this->data_inicio_inscricoes = $data_inicio_inscricoes;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_hora_inicio_inscricoes($hora_inicio_inscricoes){
                if($hora_inicio_inscricoes != '' && valida::hora($hora_inicio_inscricoes)){
                    $this->hora_inicio_inscricoes = $hora_inicio_inscricoes;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_data_final_inscricoes($data_final_inscricoes){
		if(valida::data($data_final_inscricoes)){
                    if(substr($data_final_inscricoes, 2, 1) == '/' && substr($data_final_inscricoes, 5, 1) == '/'){
                        $data_final_inscricoes = data_inter($data_final_inscricoes);
                    }
                    $this->data_final_inscricoes = $data_final_inscricoes;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_hora_final_inscricoes($hora_final_inscricoes){
                if($hora_final_inscricoes != '' && valida::hora($hora_final_inscricoes)){
                    $this->hora_final_inscricoes = $hora_final_inscricoes;
                    return 1;
		}else{
                    return 0;
                }
        }

        public function set_data_concurso($data_concurso){               
                if($data_concurso == '' || valida::data($data_concurso)){
                    if(substr($data_concurso, 2, 1) == '/' && substr($data_concurso, 5, 1) == '/'){
                        $data_concurso = data_inter($data_concurso);
                    }
                    $this->data_concurso = $data_concurso;
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_id_boleto($id_boleto){
                if($id_boleto == '' || valida::numero($id_boleto)){
                    $this->id_boleto = $id_boleto;
                    return 1;
		}else{
                    return 0;
                }
        }
        
	public function set_vencimento_boleto($vencimento_boleto){
		if($vencimento_boleto != '' && valida::data($vencimento_boleto)){
                    if(substr($vencimento_boleto, 2, 1) == '/' && substr($vencimento_boleto, 5, 1) == '/'){
                        $vencimento_boleto = data_inter($vencimento_boleto);
                    }
                    $this->vencimento_boleto = $vencimento_boleto;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_cidade($cidade){
		if($cidade != '' && valida::nome($cidade)){
                    $this->cidade = $cidade;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_estado($estado){
		if($estado != '' && valida::nome($estado)){
                    $this->estado = $estado;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_observacoes($observacoes){
                $observacoes = addslashes($observacoes);
                $this->observacoes = $observacoes;
                return 1;
        }
        
        public function set_recurso($recurso){
            if($recurso == 0 || $recurso == 1){
                $this->recurso = $recurso;
                return 1;
            }else{
                return 0;
            }
        }
        
        public function set_fechado($fechado){
            if($fechado == 0 || $fechado == 1){
                $this->fechado = $fechado;
                return 1;
            }else{
                return 0;
            }
        }

	
	
	public function salvar(){
                if(!$this->id){
                    $sql = "insert into concurso(titulo, chamada, instituicao, data_inicio_inscricoes, data_final_inscricoes, data_concurso, id_boleto, vencimento_boleto, cidade, estado, observacoes, recurso, fechado) values('".$this->titulo."', '".$this->chamada."', '".$this->instituicao."', '".$this->data_inicio_inscricoes." ".$this->hora_inicio_inscricoes."', '".$this->data_final_inscricoes." ".$this->hora_final_inscricoes."', '".$this->data_concurso."', '".$this->id_boleto."', '".$this->vencimento_boleto."', '".$this->cidade."', '".$this->estado."', '".$this->observacoes."', '".$this->recurso."', '".$this->fechado."')";
                }else{
                    $sql = "update concurso set id = '".$this->id."', titulo = '".$this->titulo."', chamada = '".$this->chamada."', instituicao = '".$this->instituicao."', data_inicio_inscricoes = '".$this->data_inicio_inscricoes." ".$this->hora_inicio_inscricoes."', data_concurso = '".$this->data_concurso."', data_final_inscricoes = '".$this->data_final_inscricoes." ".$this->hora_final_inscricoes."', id_boleto = '".$this->id_boleto."', vencimento_boleto = '".$this->vencimento_boleto."', cidade = '".$this->cidade."', estado = '".$this->estado."', observacoes = '".$this->observacoes."', recurso = '".$this->recurso."', fechado = '".$this->fechado."' where id = '$this->id'";
                }
                
		$db = new db(config::$driver);
 		$con = $db->conecta();
                $id = NULL;
		if($res = $db->query($sql, $con)){
                    if($this->id){
                        $id = $this->id;
                    }else{
                        $sql_id = "select max(id) from concurso";
                        $res_id = $db->query($sql_id, $con);
                        $val_id = $db->fetch_array($res_id);
                        $id = $val_id[0];
                    }
                }
		$db->close($con);
                
                $log = new log($sql);
                unset($log);

		return $id;
	}
	public function carregar($id){
		$sql = "select * from concurso where id = '$id'";

		$db = new db(config::$driver);
 		$con = $db->conecta();
		$res = $db->query($sql, $con);
		$db->close($con);

		$concurso = $db->fetch_array($res);

		$this->id = $concurso["id"];
                $this->titulo = $concurso["titulo"];
		$this->chamada = $concurso["chamada"];
		$this->instituicao = $concurso["instituicao"];
		$this->data_concurso = $concurso["data_concurso"];
		$this->valor_inscricao = $concurso["valor_inscricao"];
		$this->hora_inicio = $concurso["hora_inicio"];
		$this->hora_final = $concurso["hora_final"];
		$this->data_inicio_inscricoes = substr($concurso["data_inicio_inscricoes"], 0, 10);
		$this->hora_inicio_inscricoes = substr($concurso["data_inicio_inscricoes"], 11);
		$this->data_final_inscricoes = substr($concurso["data_final_inscricoes"], 0, 10);
		$this->hora_final_inscricoes = substr($concurso["data_final_inscricoes"], 11);
                $this->data_concurso = $concurso["data_concurso"];
		$this->id_boleto = $concurso["id_boleto"];
                $this->vencimento_boleto = $concurso["vencimento_boleto"];
		$this->cidade = $concurso["cidade"];
		$this->estado = $concurso["estado"];
		$this->observacoes = $concurso["observacoes"];
                $this->recurso = $concurso["recurso"];
                $this->fechado = $concurso["fechado"];
		
		return 1;
	}
        public function fechar(){
            if(isset($this->id)){
                $this->fechado = 1;
                if($this->salvar()){
                    return 1;
                }else{
                    return 0;
                }
            }else{
                return 0;
            }
        }
        public function Total(){
            $sql = "SELECT count(*) "
                . "FROM inscrito i, inscrito_concurso ic "
                . "WHERE i.id = ic.id_inscrito AND ic.id_concurso = '".$this->id."'";
            
            $db = new db(config::$driver);
            $con = $db->conecta();
            $res = $db->query($sql, $con);
            $db->close($con);

            $total = $db->fetch_array($res);
            
            return $total[0];
        }
        public function Pago(){
            /*
            $sql = "SELECT count(*) "
                . "FROM inscrito i, inscrito_concurso ic LEFT JOIN transacao t ON ic.id = t.id "
                . "WHERE i.id = ic.id_inscrito AND ic.id_concurso = '".$this->id."' AND (t.valor_pago + ".config::$taxa_do_banco.") >= t.valor_documento";
            */
            $sql = "SELECT count(*) "
                . "FROM inscrito i, transacao t, inscrito_concurso ic "
                . "WHERE ic.id_concurso = '".$this->id."' AND ic.id = t.id AND ic.id_inscrito = i.id AND ((t.data_ocorrencia IS NOT NULL AND t.valor_pago IS NOT NULL) OR (t.valor_pago + ".config::$taxa_do_banco.") >= t.valor_documento)";
            
            $db = new db(config::$driver);
            $con = $db->conecta();
            $res = $db->query($sql, $con);
            $db->close($con);

            $total = $db->fetch_array($res);
            
            return $total[0];
        }
        public function NaoPago(){
            /*
            $sql = "SELECT count(*) "
                . "FROM inscrito i, inscrito_concurso ic LEFT JOIN transacao t ON ic.id = t.id "
                . "WHERE i.id = ic.id_inscrito AND ic.id_concurso = '".$this->id."' AND ((t.valor_pago + ".config::$taxa_do_banco.") < t.valor_documento OR t.valor_pago IS NULL)";
            */
            $sql = "SELECT count(*) "
                . "FROM inscrito i, inscrito_concurso ic LEFT JOIN transacao t ON ic.id = t.id "
                . "WHERE ic.id_concurso = '".$this->id."' AND ic.id_inscrito = i.id AND ((t.data_ocorrencia IS NULL AND t.valor_pago IS NULL) OR (t.valor_pago + ".config::$taxa_do_banco.") < t.valor_documento)";
            /*
            $sql = "SELECT count(*) "
                . "FROM inscrito i, inscrito_concurso ic "
                . "WHERE i.id = ic.id_inscrito AND ic.id_concurso = '".$this->id."' AND i.id NOT IN("
                    . "SELECT i.id "
                    . "FROM inscrito i, transacao t, inscrito_concurso ic "
                    . "WHERE ic.id_concurso = '".$this->id."' AND ic.id = t.id AND ic.id_inscrito = i.id AND ((t.data_ocorrencia IS NOT NULL AND t.valor_pago IS NOT NULL) OR (t.valor_pago + ".config::$taxa_do_banco.") >= t.valor_documento)"
                . ")";
            */
            $db = new db(config::$driver);
            $con = $db->conecta();
            $res = $db->query($sql, $con);
            $db->close($con);

            $total = $db->fetch_array($res);
            
            return $total[0];
        }
}
?>
